package com.nio.controller;

import java.io.IOException;
import java.nio.file.*;
import java.nio.file.attribute.BasicFileAttributes;

public class FilesDemo {
    public static void main(String[] args) {
        // 新建目录
//        Path path = Paths.get("F:\\niotest");
//        try {
//            Path directory = Files.createDirectory(path);
//        } catch (IOException e) {
//            e.printStackTrace();
//        }

        // copy复制目录
//        Path path1 = Paths.get("F:\\1.txt");
//        Path path2 = Paths.get("F:\\niotest\\2.txt");
//        try {
////            Files.copy(path1, path2);
//            Files.copy(path1, path2, StandardCopyOption.REPLACE_EXISTING); // 覆盖已存在的文件
//        } catch (IOException e) {
//            e.printStackTrace();
//        }

        // move 移动文件
//        Path path1 = Paths.get("F:\\1.txt");
//        Path path2 = Paths.get("F:\\niotest\\3.txt");
//        try {
////            Files.move(path1, path2); // 移动文件
//            Files.move(path1, path2, StandardCopyOption.REPLACE_EXISTING); // 移动已存在的文件
//        } catch (IOException e) {
//            e.printStackTrace();
//        }

        // delete 删除文件
//        Path path2 = Paths.get("F:\\niotest\\3.txt");
//        try {
//            Files.delete(path2); // 删除文件
//        } catch (IOException e) {
//            e.printStackTrace();
//        }

        // walkFileTree 遍历文件
        Path path2 = Paths.get("F:\\niotest");
        String findPath = "3.txt";
        try {
            Files.walkFileTree(path2, new SimpleFileVisitor<Path>(){
                @Override
                public FileVisitResult visitFile(Path file, BasicFileAttributes attrs) throws IOException {
                    String s = file.toAbsolutePath().toString();
                    System.out.println(s);
                    if(s.endsWith(findPath)){
                        System.out.println("找到文件了"+file.toAbsolutePath());
                        return FileVisitResult.TERMINATE;
                    }
                    return FileVisitResult.CONTINUE;
                }
            });
        } catch (IOException e) {
            e.printStackTrace();
        }

    }
}
